package com.tank.mongodb;


import java.net.UnknownHostException;
import java.util.ArrayList;
import java.util.List;

/**
 * Created by Administrator on 2015/12/25.
 */
public class SimpleTest {

//    private Mongo mg = null;
//
//    private DB db;
//
//    private DBCollection users;
//
//  // @Before
//    public void init() {
//
//        try {
//
//            mg = new Mongo();
//
//            mg = new Mongo("localhost", 27017);
//
//        } catch (MongoException e) {
//            //System.out.error("MongoException:{}",e);
//        } catch (Exception e) {
//            //System.out.error("Exception:{}", e);
//
//        }
//
//        //获取temp DB；如果默认没有创建，mongodb会自动创建
//
//        db = mg.getDB("temp");
//
//        //获取users DBCollection；如果默认没有创建，mongodb会自动创建
//
//        users = db.getCollection("users");
//       // System.out.print.info("count: " + users.count());
//        DBObject user = new BasicDBObject();
//        user.put("name", "hoojo");
//        user.put("age", 24);
//        users.save(user);
//        //保存，getN()获取影响行数
//        //扩展字段，随意添加字段，不影响现有数据
//        user.put("sex", "男");
//      //  System.out.print.info("method invoke:{}",user);
//    }
//
//    public void destory() {
//
//        if (mg != null)
//
//            mg.close();
//
//        mg = null;
//
//        db = null;
//
//        users = null;
//
//        System.gc();
//
//    }
//
//    public void queryAll() {
//
//
//        System.out.print("查询users的所有数据：");
//        System.out.print.info("查询users的所有数据:{}", users);
//        //db游标
//        DBCursor cur = users.find();
//
//        while (cur.hasNext()) {
//            System.out.print("me{}" + cur.next());
//        }
//    }
//
//
//
//    public  void add() {
//
//        //先查询所有数据
//
//      //  queryAll();
//
//        System.out.print.info("count: " + users.count());
//        DBObject user = new BasicDBObject();
//        user.put("name", "hoojo");
//        user.put("age", 24);
//        //users.save(user)保存，getN()获取影响行数
//        //System.out.print.info(users.save(user).getN());
//        //扩展字段，随意添加字段，不影响现有数据
//        user.put("sex", "男");
//        System.out.print.info("user:{}",users.save(user).getN());
//        //添加多条数据，传递Array对象
//        System.out.print.info("name:{}",users.insert(user, new BasicDBObject("name", "tom")).getN());
//        //添加List集合
//
//        List<DBObject> list = new ArrayList<DBObject>();
//
//        list.add(user);
//
//        DBObject user2 = new BasicDBObject("name", "lucy");
//
//        user.put("age", 22);
//
//        list.add(user2);
//
//        //添加List集合
//
//        System.out.print.info("insert:{}",users.insert(list).getN());
//
//
//
//        //查询下数据，看看是否添加成功
//
//        System.out.print.info("count: " + users.count());
//
//        queryAll();
//
//    }
//
//
//
//
//    public void remove() {
//
//        queryAll();
//
//        System.out.print.info("删除id = 4de73f7acd812d61b4626a77：" + users.remove(new BasicDBObject("_id", new ObjectId("4de73f7acd812d61b4626a77"))).getN());
//
//        System.out.print.info("remove age >= 24: " + users.remove(new BasicDBObject("age", new BasicDBObject("$gte", 24))).getN());
//
//    }
//
//
//
//
//    public void modify() {
//
//        System.out.print.info("修改：" + users.update(new BasicDBObject("_id", new ObjectId("4dde25d06be7c53ffbd70906")), new BasicDBObject("age", 99)).getN());
//
//        System.out.print.info("修改：" + users.update(
//
//                new BasicDBObject("_id", new ObjectId("4dde2b06feb038463ff09042")),
//
//                new BasicDBObject("age", 121),
//
//                true,//如果数据库不存在，是否添加
//
//                false//多条修改
//
//        ).getN());
//
//        System.out.print.info("修改：" + users.update(
//
//                new BasicDBObject("name", "haha"),
//
//                new BasicDBObject("name", "dingding"),
//
//                true,//如果数据库不存在，是否添加
//
//                true//false只修改第一天，true如果有多条就不修改
//
//        ).getN());
//
//
//
//        //当数据库不存在就不修改、不添加数据，当多条数据就不修改
//
//        //System.out.print.info("修改多条：" + coll.updateMulti(new BasicDBObject("_id", new ObjectId("4dde23616be7c19df07db42c")), new BasicDBObject("name", "199")));
//
//    }
//
//
//
//
//    public void query() {
//
//        //查询所有
//
//        //queryAll();
//
//        //查询id = 4de73f7acd812d61b4626a77
//
//        System.out.print.info("find id = 4de73f7acd812d61b4626a77: " + users.find(new BasicDBObject("_id", new ObjectId("567d2cd8e7444e0f60f16dba"))).toArray());
//
//
//
//        //查询age = 24
//
//       // System.out.print.info("find age = 24: " + users.find(new BasicDBObject("age", 24)).toArray());
//
//
//
//        //查询age >= 24
//
//       // System.out.print.info("find age >= 24: " + users.find(new BasicDBObject("age", new BasicDBObject("$gte", 24))).toArray());
//
//       // System.out.print.info("find age <= 24: " + users.find(new BasicDBObject("age", new BasicDBObject("$lte", 24))).toArray());
//
//
//
////        System.out.print.info("查询age!=25：" + users.find(new BasicDBObject("age", new BasicDBObject("$ne", 25))).toArray());
////
////        System.out.print.info("查询age in 25/26/27：" + users.find(new BasicDBObject("age", new BasicDBObject(QueryOperators.IN, new int[]{25, 26, 27}))).toArray());
////
////        System.out.print.info("查询age not in 25/26/27：" + users.find(new BasicDBObject("age", new BasicDBObject(QueryOperators.NIN, new int[]{25, 26, 27}))).toArray());
////
////        System.out.print.info("查询age exists 排序：" + users.find(new BasicDBObject("age", new BasicDBObject(QueryOperators.EXISTS, true))).toArray());
////
////
////
////        System.out.print.info("只查询age属性：" + users.find(null, new BasicDBObject("age", true)).toArray());
////
////        System.out.print.info("只查属性：" + users.find(null, new BasicDBObject("age", true), 0, 2).toArray());
////
////        System.out.print.info("只查属性：" + users.find(null, new BasicDBObject("age", true), 0, 2, Bytes.QUERYOPTION_NOTIMEOUT).toArray());
//
//
//
//        //只查询一条数据，多条去第一条
//
////        System.out.print.info("findOne: " + users.findOne());
////
////        System.out.print.info("findOne: " + users.findOne(new BasicDBObject("age", 26)));
////
////        System.out.print.info("findOne: " + users.findOne(new BasicDBObject("age", 26), new BasicDBObject("name", true)));
//
//
//
//        //查询修改、删除
//
//    //    System.out.print.info("findAndRemove 查询age=25的数据，并且删除: " + users.findAndRemove(new BasicDBObject("age", 25)));
//
//
//
//        //查询age=26的数据，并且修改name的值为Abc
//
////        System.out.print.info("findAndModify: " + users.findAndModify(new BasicDBObject("age", 26), new BasicDBObject("name", "Abc")));
////
////        System.out.print.info("findAndModify: " + users.findAndModify(
////
////                new BasicDBObject("age", 28), //查询age=28的数据
////
////                new BasicDBObject("name", true), //查询name属性
////
////                new BasicDBObject("age", true), //按照age排序
////
////                false, //是否删除，true表示删除
////
////                new BasicDBObject("name", "Abc"), //修改的值，将name修改成Abc
////
////                true,
////
////                true));
////
////
////
////        queryAll();
//
//    }
}
